// 环境配置
const config = {
  // 开发环境配置
  development: {
    // 本地开发服务器地址
    localServer: 'http://localhost:8081',
    // 生产服务器地址（备用）
    productionServer: 'http://41ae418d.r3.cpolar.top'
  },
  
  // 生产环境配置
  production: {
    // 生产服务器地址
    productionServer: 'http://41ae418d.r3.cpolar.top'
  }
}

// 获取当前环境
function getEnvironment() {
  // #ifdef H5
  // 网页端：根据域名判断环境
  if (typeof window !== 'undefined') {
    const hostname = window.location.hostname
    console.log('当前访问域名:', hostname)
    
    // 本地开发环境
    if (hostname === 'localhost' || hostname === '127.0.0.1' || hostname.includes('192.168.')) {
      console.log('识别为开发环境')
      return 'development'
    }
    
    // 生产环境（服务器部署）
    console.log('识别为生产环境')
    return 'production'
  }
  // #endif
  
  // #ifdef APP-PLUS
  // App端：始终使用生产环境
  console.log('App端，使用生产环境')
  return 'production'
  // #endif
  
  // #ifdef MP
  // 小程序：根据编译模式判断
  // #ifdef MP-WEIXIN
  console.log('小程序端，使用生产环境')
  return 'production'
  // #endif
  // #endif
  
  // 默认返回生产环境（更安全）
  console.log('默认使用生产环境')
  return 'production'
}

// 获取当前环境的配置
function getCurrentConfig() {
  const env = getEnvironment()
  return config[env] || config.development
}

// 获取生产服务器地址（微信登录等关键功能必须使用生产服务器）
function getProductionServerURL() {
  // 优先使用生产环境配置，如果没有则使用开发环境的备用地址
  const productionConfig = config.production || config.development
  return productionConfig.productionServer
}

// 获取服务器地址
function getServerURL() {
  const currentConfig = getCurrentConfig()
  const env = getEnvironment()
  
  console.log('当前环境:', env)
  
  // 网页端开发环境：默认使用生产服务器（因为本地后端可能未运行）
  if (env === 'development') {
    // #ifdef H5
    // 开发环境可以通过 localStorage 设置 'useLocalServer' 来使用本地服务器
    // 如果本地后端服务正在运行，可以在浏览器控制台执行：
    // localStorage.setItem('useLocalServer', 'true')
    const useLocal = localStorage.getItem('useLocalServer') === 'true'
    if (useLocal) {
      console.log('开发环境使用本地服务器:', currentConfig.localServer)
      return currentConfig.localServer
    }
    
    // 默认使用生产服务器（避免本地后端服务未运行导致的404错误）
    console.log('开发环境使用生产服务器:', currentConfig.productionServer)
    console.log('提示: 如果本地后端服务正在运行，可在控制台执行: localStorage.setItem("useLocalServer", "true")')
    return currentConfig.productionServer
    // #endif
  }
  
  // App端和其他环境使用生产服务器
  console.log('使用生产服务器:', currentConfig.productionServer)
  return currentConfig.productionServer
}

// 获取当前环境信息
function getEnvironmentInfo() {
  const env = getEnvironment()
  const serverURL = getServerURL()
  
  return {
    environment: env,
    serverURL: serverURL,
    isDevelopment: env === 'development',
    isProduction: env === 'production',
    platform: getPlatform()
  }
}

// 获取当前平台
function getPlatform() {
  // #ifdef H5
  return 'web'
  // #endif
  // #ifdef APP-PLUS
  return 'app'
  // #endif
  // #ifdef MP
  return 'miniprogram'
  // #endif
  return 'unknown'
}

export default {
  config,
  getEnvironment,
  getCurrentConfig,
  getServerURL,
  getProductionServerURL,
  getEnvironmentInfo,
  getPlatform
}
